#include <bibliotecas.h>

#ifndef __LCAIXA_H__
#define __LCAIXA_H__ 1

/** Classe Template COLUNAS 
 ela reimplementa a classe Gtk::TreeModel::ColumnRecord e é utilizada para 
 TreeView e EntryCompletion.
 */
class COLUNAS_LC : public Gtk::TreeModel::ColumnRecord
	{
	public : 
		/** Construtor da Classe COLUNAS */
		COLUNAS_LC ();
		/** Destrutor da Classe COLUNAS */
		~COLUNAS_LC ();
		Gtk::TreeModelColumn<int> codigo;/**<Código*/
		Gtk::TreeModelColumn<Glib::ustring> descricao;/**<Campo para descrição. */
		Gtk::TreeModelColumn<Glib::ustring> campo[7];/**<Campos para TreeView */
		Gtk::TreeModelColumn<int> protocolo;
		Gtk::TreeModelColumn<float> receita;
		Gtk::TreeModelColumn<float> despesa;

	private:
		int n_campos;/**<Quantidade de Campos. */
					
	};

class LCAIXA: public Gtk::Window 
	{
	public:
		LCAIXA(BANCOPG *);
		~LCAIXA();

	protected:
		//Atributos
		Gtk::ToolButton *BT_Novo, *BT_Editar, *BT_Nav[4];
		Gtk::ToolItem *BT_Item;
		Gtk::TreeView *TV;
		Gtk::Label *Contagem;
		
		//Métodos
		void sair (Gtk::Window *);

	private:
		int total;
		int pagina;
		int paginas;
		int limite;
		BANCOPG *conexao;
		Glib::RefPtr<Gdk::Pixbuf> ponteiro_icon;/**<Ponteiro especial utilizado para carregar icone da Janela.*/
		COLUNAS_LC arvore_reg;/**<Estrutura de árvore para Gtk::TreeView.*/
		Glib::RefPtr<Gtk::ListStore> arvore_ref;/**<Ponteiro de referência*/
		Gtk::TreeModel::Row celula;/**<Atributo do tipo Gtk::TreeModel::Row. */

		//Métodos
		void carregar(int);
		void navegar(int);
	};

#endif /*__LCAIXA_H__*/